#pragma once
#ifndef _fastbird_IScene_header_included_
#define _fastbird_IScene_header_included_

#include <Engine/SmartPtr.h>

namespace fastbird
{
    class IObject;
    class SpatialObject;
	class IScene : public ReferenceCounter
	{
	public:
		virtual ~IScene() {}
		virtual bool AttachObject(SpatialObject* pSpatialObject) = 0;
        virtual bool DetachObject(SpatialObject* pSpatialObject) = 0;

        virtual bool AttachObject(IObject* pObject) = 0;
        virtual bool DetachObject(IObject* pObject) = 0;

		virtual void PreRender() = 0;
		virtual void Render() = 0;
	};
}

#endif //_fastbird_IScene_header_included_